package socket.nettydemo;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

public class Client3 {
    public static final String IP_ADDR = "localhost";//服务器地址
    public static final int PORT = 12345;//服务器端口号

    public static void main(String[] args) throws IOException {
        System.out.println("客户端启动...");
        System.out.println("当接收到服务器端字符为 \"OK\" 的时候, 客户端将终止\n");
        while (true){
            Socket socket = null;
            //创建一个流套接字并将其连接到指定主机上的指定端口号
            try {
                socket = new Socket(IP_ADDR, PORT);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //读取服务器端数据
            try {
                //读取服务器端数据
                DataInputStream input = new DataInputStream(socket.getInputStream());
                //向服务器端发送数据
                DataOutputStream out = new DataOutputStream(socket.getOutputStream());
                out.writeUTF("3;i am 3");
                out.flush();

                byte[] byteArray = new byte[1024];
                int length = input.read(byteArray);
                String ret = null;
                if (length > 0){
                    ret = new String(byteArray, 0, length, "UTF-8");
                    System.out.println("服务器端返回过来的是: " + ret);
                }else {
                    System.out.println("error");
                }

                out.close();
                input.close();
            } catch (Exception e) {
                System.out.println("客户端异常:" + e.getMessage());
                e.printStackTrace();
                break;
            } finally {
                if (socket != null) {
                    try {
                        socket.close();
                    } catch (IOException e) {
                        socket = null;
                        System.out.println("客户端 finally 异常:" + e.getMessage());
                    }
                }
            }
        }

    }
}